import java.util.Stack;

public class Test03 {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        Stack<Integer> stack = new Stack();
        int j = 0;
        for (int in : pushed) {
            stack.push(in);  // 将当前元素压入栈
            // 检查栈顶元素是否和 popped 中当前 j 对应的元素相等
            while (!stack.isEmpty() && stack.peek() == popped[j]) {
                stack.pop();  // 如果相等，则出栈
                j++;  // 移动 popped 数组的指针
            }
        }
        // 如果最后栈为空，说明序列是合法的
        return stack.isEmpty();
    }
}
